#!user/bin/env python3
# -- coding: utf-8 --
# @Createtime：2022/5/20
# @Updatetime：0:00
# @Author：Test008
# @File：mylogger.py
# @Description：在发送请求的时候，需要添加对应的日志记录，所以在requests库中封装日志功能。
# 日志需要在控制台中输出出来的同时又能保存在文件中。
# 封装日志
# 日志文件中产生的日志 需要存放在 项目的根目录下 logs 文件下。
"""
定义日志文件
"""
import logging

# 配置logging，设置日志记录器的名字
import os.path
import time
import os

logger = logging.getLogger('apitesting')
logger.setLevel(logging.DEBUG)  # 配置logger级别
# 配置通用的日志格式            时间         日志级别    记录器名字  日志信息
format = logging.Formatter('%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s %(name)s %(message)s ')

sh = logging.StreamHandler()  # 配置控制台打印
sh.setLevel(logging.DEBUG)  # 设置日志级别
sh.setFormatter(format)  # 设置日志格式
logger.addHandler(sh)  # 将控制台打印添加到logger中

# 日志文件按照天划分，每次执行，比如今天是2022/05/20，创建目录 2022-5 表示2022年5月份日志
# 正在目录中创建文件 20.log表示20日的日志
dir_m = time.strftime('%Y-%m')  # 年-月
dir_d = time.strftime('%d')  # 日
# print(dir,dir_d)
# 拼接目录
logs = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'logs')
if not os.path.exists(logs):  # 判断logs是否存在
    os.mkdir(logs)
# 拼接带时间的目录
file_m = os.path.join(logs, dir_m)
if not os.path.exists(file_m):  # 判断月份文件夹存在
    os.mkdir(file_m)
file_d = os.path.join(file_m, dir_d + '.log')  # 文件不需要判断，后面直接写入
# print(file_d)
file_save = logging.FileHandler(file_d, encoding='utf8')  # 配置文件写入
file_save.setLevel(logging.DEBUG)  # 日志文件的 级别
file_save.setFormatter(format)  # 日志文件的内容格式
logger.addHandler(file_save)  # 将日志文件配置添加到logger

# 做个测试
if __name__ == '__main__':
    logger.info('我是张三')
